# 指定最低 CMake 版本要求
cmake_minimum_required ( VERSION 3.15 FATAL_ERROR )

# 定义项目名称和支持的语言
project ( recipe-04 LANGUAGES CXX )

# 使用 option() 设置 USE_LIBRARY 变量，默认值为 OFF，并提供帮助信息
option ( USE_LIBRARY "Compile sources into a library" OFF )
message ( STATUS "Compile sources into a library? ${USE_LIBRARY}" )

# 设置 BUILD_SHARED_LIBS 全局变量为 OFF，表示默认生成静态库
set ( BUILD_SHARED_LIBS OFF )

# 定义源文件列表
list ( APPEND _sources Message.hpp Message.cpp )

# 根据 USE_LIBRARY 的值，选择不同的构建方式
if ( USE_LIBRARY )
    # 如果 USE_LIBRARY 为真，则将 Message.hpp 和 Message.cpp 打包成一个库
    add_library ( message ${_sources} )

    # 创建可执行文件 hello-world
    add_executable ( hello-world hello-world.cpp )

    # 将库链接到可执行文件
    target_link_libraries ( hello-world message )
else ()
    # 如果 USE_LIBRARY 为假，则直接将所有源文件编译成一个可执行文件
    add_executable ( hello-world hello-world.cpp ${_sources} )
endif ()